home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-04-20 | 58.1 KB | 1,538 lines |
- Network Working Group S. E. Deering
- Request for Comments: 966 D. R. Cheriton
- Stanford University
- December 1985
-
- Host Groups:
- A Multicast Extension to the Internet Protocol
-
-
- 1. Status of this Memo
-
- This RFC defines a model of service for Internet multicasting and
- proposes an extension to the Internet Protocol (IP) to support such a
- multicast service. Discussion and suggestions for improvements are
- requested. Distribution of this memo is unlimited.
-
- 2. Acknowledgements
-
- This memo was adapted from a paper [7] presented at the Ninth Data
- Communications Symposium. This work was sponsored in part by the
- Defense Advanced Research Projects Agency under contract N00039-83-
- K-0431 and National Science Foundation Grant DCR-83-52048.
-
- The Internet task force on end-to-end protocols, headed by Bob
- Braden, has provided valuable input in the development of the host
- group model.
-
- 3. Introduction
-
- In this paper, we describe a model of multicast service we call host
- groups and propose this model as a way to support multicast in the
- DARPA Internet environment [14]. We argue that it is feasible to
- implement this facility as an extension of the existing "unicast" IP
- datagram model and mechanism.
-
- Multicast is the transmission of a datagram packet to a set of zero
- or more destination hosts in a network or internetwork, with a single
- address specifying the set of destination hosts. For example, hosts
- A, B, C and D may be associated with multicast address X. On
- transmission, a packet with destination address X is delivered with
- datagram reliability to hosts A, B, C and D.
-
- Multicast has two primary uses, namely distributed binding and
- multi-destination delivery. As a binding mechanism, multicast is a
- robust and often more efficient alternative to the use of name
- servers for finding a particular object or service when a particular
- host address is not known. For example, in a distributed file
- system, all the file servers may be associated with one well-known
- multicast address. To bind a file name to a particular server, a
- client sends a query packet containing the file name to the file
- server multicast address, for delivery to all the file servers. The
-
-
- Deering & Cheriton [Page 1]
-
-
-
- RFC 966 December 1985
- Host Groups: A Multicast Extension to the Internet Protocol
-
-
- server that recognizes the file name then responds to the client,
- allowing subsequent interaction directly with that server host. Even
- when name servers are employed, multicast can be used as the first
- step in the binding process, that is, finding a name server.
-
- Multi-destination delivery is useful to several applications,
- including:
-
- - distributed, replicated databases [6,9].
-
- - conferencing [11].
-
- - distributed parallel computation, including distributed
- gaming [2].
-
- Ideally, multicast transmission to a set of hosts is not more
- complicated or expensive for the sender than transmission to a single
- host. Similarly, multicast transmission should not be more expensive
- for the networks and gateways than traversing the shortest path tree
- that connects the sending host to the hosts identified by the
- multicast address.
-
- Multicast, transmission to a set of hosts, is properly distinguished
- from broadcast, transmission to all hosts on a network or
- internetwork. Broadcast is not a generally useful facility since
- there are few reasons for communicating with all hosts.
-
- A variety of local network applications and systems make use of
- multicast. For instance, the V distributed system [8] uses
- network-level multicast for implementing efficient operations on
- groups of processes spanning multiple machines. Similar use is being
- made for replicated databases [6] and other distributed applications
- [4]. Providing multicast in the Internet environment would allow
- porting such local network distributed applications to the Internet,
- as well as making some existing Internet applications more robust and
- portable (by, for example, removing "wired-in" lists of addresses,
- such as gateway addresses).
-
- At present, an Internet application logically requiring multicast
- must send individually addressed packets to each recipient. There
- are two problems with this approach. Firstly, requiring the sending
- host to know the specific addresses of all the recipients defeats its
- use as a binding mechanism. For example, a diskless workstation
- needs on boot to determine the network address of a disk server and
- it is undesirable to "wire in" specific network addresses. With a
- multicast facility, the multicast address of the boot servers (or
-
-
-
- Deering & Cheriton [Page 2]
-
-
-
- RFC 966 December 1985
- Host Groups: A Multicast Extension to the Internet Protocol
-
-
- name servers that hold the addresses of the boot servers) can be
- well-known, allowing the workstation to transmit its initial queries
- to this address.
-
- Secondly, transmitting multiple copies of the same packet makes
- inefficient use of network bandwidth, gateway resources and sender
- resources. For instance, the same packet may repeatedly traverse the
- same network links and pass through the same gateways. Furthermore,
- the local network level cannot recognize multi-destination delivery
- to take advantage of multicast facilities that the underlying network
- technologies may provide. For example, local-area bus, ring, or
- radio networks, as well as satellite-based wide-area networks, can
- provide efficient multicast delivery directly. Besides using
- excessive communication resources, the use of multiple transmissions
- to effect multicast severely limits the amount of parallelism in
- transmission and processing that can be achieved compared to an
- integrated multicast facility.
-
- The next section describes the host group model of multicast service.
- Section 5 describes the extensions to IP to support the host group
- model. Section 6 discusses the implementation of multicast within
- the networks and gateways making up the Internet. Section 7 relates
- this model to other proposals. Finally, we conclude with remarks on
- our experimental prototype implementation of host groups and comments
- on future directions for investigation.
-
- 4. The Host Group Model
-
- The Internet architecture defines a name space of individual host
- addresses. The host group model extends that name space to include
- addresses of host groups. A host group is a set of zero or more
- Internet hosts <1>. When an IP packet is sent with a host group
- address as its destination, it is delivered with "best effort"
- datagram reliability to all members of that host group.
-
- The sender need not be a member of the destination group. We refer
- to such a group as open, in contrast to a closed group where only
- members are allowed to send to the group. We chose to provide open
- groups because they are more flexible and more consistent as an
- extension of conventional unicast models (even though they may harder
- to implement).
-
- Dynamic management of group membership provides flexible binding of
- Internet addresses to hosts. Hosts may join and leave groups over
- time. A host may also belong to more than one group at a time.
- Finally, a host may belong to no groups at times, during which that
- host is unreachable within the Internet architecture. In fact, a
-
-
- Deering & Cheriton [Page 3]
-
-
-
- RFC 966 December 1985
- Host Groups: A Multicast Extension to the Internet Protocol
-
-
- host need not have an individual Internet address at all. Some hosts
- may only be associated with multi-host group addresses. For
- instance, there may be no reason to contact an individual time server
- in the Internet, so time servers would not require individual
- addresses.
-
- Internet addresses are dynamically allocated for transient groups,
- groups that often last only as long as the execution of a single
- distributed program. In addition, a range of host group identifiers
- is reserved for identifying permanent groups. One use of permanent
- host groups identifiers is for host groups with standard logical
- meanings such as "name server group", "boot server group", "Internet
- monitor group", etc.
-
- In the current Internet architecture, addresses are bound to single
- hosts. The host group model generalizes the binding of Internet
- addresses to hosts by allowing one address to bind to multiple hosts
- on multiple networks, more than one address to be bound (in part) to
- one host, and the binding of an address to host to be dynamic, i.e.
- possible to be modified under application control. Within this more
- general model, the current architecture is supported as a special
- case, retaining its current semantics and implementation.
-
- The following subsections provide further details of the model.
-
- 4.1. Host Group Management
-
- Dynamic binding of Internet addresses to hosts is managed by the
- following three operations which are made available to clients of
- the Internet Protocol <2>:
-
- CreateGroup ( type ) --> outcome, group-address, access-key
-
- requests the creation of a new transient host group with the
- invoking host as its only member. The type argument specifies
- whether the group is restricted or unrestricted. A restricted
- group restricts membership based on the access-key. Only hosts
- presenting a valid host access-key are allowed to join. All
- unrestricted host groups have a null access-key. outcome
- indicates whether the request is approved or denied. If it is
- approved, a new transient group address is returned in
- group-address. access-key is the protection key (or password)
- associated with the new group. This should fail only if there are
- no free transient group addresses.
-
- JoinGroup ( group-address, access-key ) --> outcome
-
-
-
- Deering & Cheriton [Page 4]
-
-
-
- RFC 966 December 1985
- Host Groups: A Multicast Extension to the Internet Protocol
-
-
- requests that the invoking host become a member of the identified
- host group (permanent or transient). outcome indicates whether
- the request is approved or denied. A request is denied if the
- access key is invalid.
-
- LeaveGroup ( group-address ) --> outcome
-
- requests that the invoking host be dropped from membership in the
- identified group (permanent or transient). outcome indicates
- whether the request is approved or denied.
-
- There is no operation to destroy a transient host group because a
- transient host group is deemed to no longer exist when its
- membership goes to zero.
-
- Permanent host group addresses are allocated and published by
- Internet administrators, in the same way as well-known TCP and UDP
- port numbers. That is, they are published in future editions of
- the "Assigned Numbers" document [17].
-
- 4.2. Packet Transmission
-
- Transmission of a packet in the host group model is controlled by
- two parameters of scope, one being the destination internetwork
- address and the other being the "distance" to the destination
- host(s). In particular,
-
- Send ( dest-address, source-address, data, distance )
-
- transmits the specified data in an internetwork datagram to the
- host(s) identified by dest-address that are within the specified
- distance. The destination address is thus similar to conventional
- networks except that delivery may be to multiple hosts; the
- distance parameter requires further discussion.
-
- Distance may be measured in several ways, including number of
- network hops, time to deliver and what might be called
- administrative distance. Administrative distance refers to the
- distance between the administrations of two different networks.
- For example, in a company the networks of the research group and
- advanced development group might be considered quite close to each
- other, networks of the corporate management more distant, and
- networks of other companies much more distant. One may wish to
- restrict a query to members within one's own administrative domain
- because servers outside that domain may not be trusted.
- Similarly, error reporting outside of an administrative domain may
- not be productive and may in fact be confusing.
-
-
- Deering & Cheriton [Page 5]
-
-
-
- RFC 966 December 1985
- Host Groups: A Multicast Extension to the Internet Protocol
-
-
- Besides limiting the scope of transmission, the distance parameter
- can be used to control the scope of multicast as a binding
- mechanism and to implement an expanding scope of search for a
- desired service. For instance, to locate a name server familiar
- with a given name, one might check with nearby name servers and
- expand the distance (by incrementing the distance on
- retransmission) to include more distant name servers until the
- name is found.
-
- To reach all members of a group, a sender specifies the maximum
- value for the distance parameter. This maximum must exceed the
- "diameter" of the Internet.
-
- Packet reception is the same as conventional architectures. That
- is,
-
- Receive () --> dest-address, source-address, data
-
- returns the next internetwork datagram that is, or has been,
- received.
-
- 4.3. Delivery Requirements
-
- We identify several requirements for the packet delivery mechanism
- that are essential to host groups being a useful and used
- facility.
-
- Firstly, given the predominance of broadcast local-area networks
- and the locality of communication to individual networks, the
- delivery mechanism must be able to exploit the hardware's
- capability for very efficient multicast within a single local-area
- network.
-
- Secondly, the delivery mechanism must scale in sophistication to
- efficient delivery across the Internet as it acquires high-speed
- wide-area communication links and higher performance gateways.
- The former are being provided by the introduction of high-speed
- satellite channels and long-haul fiber optic links. The latter
- are made feasible by the falling cost of memory and processing
- power plus the increasing importance in controlling access to
- relatively unprotected local network environments. A host group
- delivery mechanism must be able to take advantage of these trends
- as they materialize.
-
- Finally, the delivery mechanism must avoid "systematic errors" in
- delivery to members of the host group. That is, a small number of
- repeated transmissions must result in delivery to all group
-
-
- Deering & Cheriton [Page 6]
-
-
-
- RFC 966 December 1985
- Host Groups: A Multicast Extension to the Internet Protocol
-
-
- members within the specified distance, unless a member is
- disconnected or has failed. We refer to this property as
- coverage. In general, most reliable protocols make this basic
- assumption for unicast delivery. It is important to guarantee
- this assumption for multicast as well or else applications using
- multicast may fail in unexpected ways when coverage is not
- provided. For efficiency, the multicast delivery mechanism should
- also avoid regularly delivering multiple copies of a packet to
- individual hosts.
-
- Failure notification is not viewed as an essential requirement,
- given the datagram semantics of delivery. However, a host group
- extension to IP should provide "hint"-level failure notification
- as the natural extension of the failure notification for unicast.
-
- 5. Extensions to IP
-
- This section discusses the specific extensions to the DARPA Internet
- Protocol required to support the host group model. The extensions
- need be implemented only on those hosts that wish to join host groups
- or send to host groups; existing implementations are not affected by
- the proposed changes.
-
- 5.1. Group Addresses
-
- A portion of the 32-bit IP address space is reserved for host
- group addresses. The range of group addresses is chosen to be
- easily recognized and to not conflict with existing individual
- addresses. Either Class A addresses with a distinguished
- (currently unused) network number or Class D addresses (those
- starting with 111) would be suitable. The range of group addresses
- is further subdivided into a set of permanent group addresses and
- a set of temporary group addresses.
-
- Host group addresses may be used in the same way as individual
- addresses in the source, destination, and options fields of IP
- datagrams. An IP implementation adds to the list of its own
- individual addresses, the addresses of all groups to which it
- belongs. The source addresses of locally originated datagrams are
- validated against the list, and incoming datagrams which are not
- destined to an address on the list are discarded. The addresses
- on the list change dynamically as IP users create, join and leave
- groups.
-
-
-
-
-
-
- Deering & Cheriton [Page 7]
-
-
-
- RFC 966 December 1985
- Host Groups: A Multicast Extension to the Internet Protocol
-
-
- 5.2. Group Management
-
- To support the group management operations of CreateGroup,
- JoinGroup and LeaveGroup, an IP module must interact with one or
- more multicast agents which reside in neighbouring gateways or
- other special-purpose hosts. These interaction are handled by an
- Internet Group Management Protocol (IGMP) which, like ICMP [15],
- is an integral part of the IP implementation. A proposed
- specification for IGMP is given in Appendix I.
-
- 5.3. Multicast Delivery
-
- In order to transmit a datagram destined to a host group, an IP
- module must map the destination group address into a local network
- address. As with individual IP addresses, the mapping algorithm
- is local-network- specific. On networks that directly support
- multicast, the IP host group address is mapped to a local network
- multicast address that includes all local members of the host
- group plus one or more multicast agents. For networks that do not
- directly support multicast, the mapping may be to a more general
- broadcast address, to a list of local unicast addresses, or
- perhaps to the address of a single machine that handles
- multi-destination relaying.
-
- 5.4. Distance Control
-
- The existing Time to Live field in the IP header can be used for
- crude control over the delivery radius of multicast datagrams. To
- provide finer-grain control, a new IP option is defined to specify
- the maximum delivery distance in "administrative units", such as
- "this network", "this department", "this company", "this country",
- etc. The set of units and their encoding is to be determined.
-
- 6. Implementation
-
- In this section, we sketch a design for implementing the host group
- model within the Internet. This description of the design is given
- to further support the feasibility of the host group model as well as
- point out some of the problems yet to be addressed.
-
- Implementation of host groups involves implementing a binding
- mechanism (binding Internet addresses to zero or more hosts) and a
- packet delivery mechanism (delivering a packet to each host to which
- its destination address binds). This facility fits most naturally
- into the gateways of the Internet and the switching nodes of the
- constituent point-to-point networks (as opposed to separate machines)
- because multicast binding and delivery is a natural extension of the
-
-
- Deering & Cheriton [Page 8]
-
-
-
- RFC 966 December 1985
- Host Groups: A Multicast Extension to the Internet Protocol
-
-
- unicast binding and delivery (i.e. routing plus store-and-forward).
- That is, a multicast packet is routed and transmitted to multiple
- destinations, rather than to a single destination.
-
- In the following description, we start with a basic, simple
- implementation that provides coverage and then refine this mechanism
- with various optimizations to improve efficiency of delivery and
- group management.
-
- 6.1. Basic Implementation
-
- A host group defines a network group, which is the set of networks
- containing current members of the host group. When a packet is
- sent to a host group, a copy is delivered to each network in the
- corresponding network group. Then, within each network, a copy is
- delivered to each host belonging to the group.
-
- To support such multicast delivery, every Internet gateway
- maintains the following data structures:
-
- - routing table: conventional Internet routing information,
- including the distance and direction to the nearest gateway
- on every network.
-
- - network membership table: A set of records, one for every
- currently existing host group. The network membership record
- for a group lists the network group, i.e. the networks that
- contain members of the group.
-
- - local host membership table: A set of records, one for each
- host group that has members on directly attached networks.
- Each local host membership record indicates the local hosts
- that are members of the associated host group. For networks
- that support multicast or broadcast, the record may contain
- only the local network-specific multicast address used by the
- group plus a count of local members. Otherwise, local group
- members may be identified by a list of unicast addresses to
- be used in the software implementation of multicast within
- the network.
-
- A host invokes the multicast delivery service by sending a
- group-destined IP datagram to an immediate neighbour gateway (i.e.
- a gateway that is directly attached to the same network as the
- sending host). Upon receiving a group-destined datagram from a
- directly attached network, a gateway looks up the network
- membership record corresponding to the destination address of the
- datagram. For each of the networks listed in the membership
-
-
- Deering & Cheriton [Page 9]
-
-
-
- RFC 966 December 1985
- Host Groups: A Multicast Extension to the Internet Protocol
-
-
- record, the gateway consults its routing table. If, according to
- the routing table, a member network is directly attached, the
- gateway transmits a copy of the datagram on that network, using
- the network-specific multicast address allocated for the group on
- that network. For a member network that is not directly attached
- the gateway creates a copy of the datagram with an additional
- inter-gateway header identifying the destination network. This
- inter-gateway datagram is forwarded to the nearest gateway on the
- destination network, using conventional store-and-forward routing
- techniques. At the gateway on the destination network, the
- datagram is stripped of its inter-gateway header and transmitted
- to the group's multicast address on that network. The datagram is
- dropped by the relaying gateways whenever it exceeds its distance
- limit.
-
- The network membership records and the network-specific multicast
- structures are updated in response to group management requests
- from hosts. A host sends a request to create, join, or leave a
- group to an immediate neighbour gateway. If the host requests
- creation of a group, a new network membership record is created by
- the serving gateway and distributed to all other gateways. If the
- host is the first on its network to join a group, or if the host
- is the last on its network to leave a group, the group's network
- membership record is updated in all gateways. The updates need
- not be performed atomically at all gateways, due to the datagram
- delivery semantics; hosts can tolerate misrouted and lost packets
- caused by temporary gateway inconsistencies, as long as the
- inconsistencies are resolved within normal host retransmission
- periods. In this respect, the network membership data is similar
- to the network reachability data maintained by conventional
- routing algorithms, and can be handled by similar mechanisms.
-
- In many cases, a host joins a group that already has members on
- the same network, or leaves a group that has remaining members on
- the same network. This is then a local matter between the hosts
- and gateways on a single network: only the local host membership
- table needs to be updated to include or exclude the host.
-
- This basic implementation strategy meets the delivery requirements
- stated at the end of Section 4. However, it is far from optimal,
- in terms of either delivery efficiency or group management
- overhead. Below, we discuss some further refinements to the basic
- implementation.
-
-
-
-
-
-
- Deering & Cheriton [Page 10]
-
-
-
- RFC 966 December 1985
- Host Groups: A Multicast Extension to the Internet Protocol
-
-
- 6.2. Multicast Routing Between Networks
-
- Multicast routing among the Internet gateways is similar to
- store-and-forward routing in a point-to-point network. The main
- difference is that the links between the nodes (gateways) can be a
- mixture of broadcast and unicast-type networks with widely
- different throughput and delay characteristics. In addition,
- packets are addressed to networks rather than hosts (at the
- gateway level).
-
- We intend to use the extended reverse path forwarding algorithm of
- Dalal and Metcalfe [10]. Although originally designed for
- broadcast, it is a simple and efficient technique that can serve
- well for multicast delivery if network membership records in each
- gateway are augmented with information from neighbouring gateways.
- This algorithm uses the source network identifier, rather than a
- destination network identifier to make routing decisions. Since
- the source address of a datagram may be a group address, it cannot
- be used to identify the source network of the datagram; the first
- gateway must add a header specifying the source network. This
- approach minimizes redundant transmissions when multiple
- destination networks are reachable across a common intergateway
- link, a problem with the basic implementation described above.
-
- Note that we eliminate from consideration techniques that fail to
- deliver along the branches of the shortest delay tree rooted at
- the source, such as Wall's center-based forwarding [16] because
- this compromises the meaning of the multicast distance parameter
- and detracts from multicast performance in general. We also
- rejected the approach of having a multicast packet carry more than
- one network identifier in its inter-gateway header to indicate
- multiple destination networks because the resulting variable
- length headers would cause buffering and fragmentation problems in
- the gateways.
-
- 6.3. Multicasting Within Networks
-
- A simple optimization within a network is to have the sender use
- the local multicast address of a host group for its initial
- transmission. This allows the local host group members to receive
- the transmission immediately along with the gateways (which must
- now "eavesdrop" on all multicast transmissions). A gateway only
- forwards the datagram if the destination host group includes
- members on other networks. This scheme reduces the cost to reach
- local group members to one packet transmission from two required
-
-
-
-
- Deering & Cheriton [Page 11]
-
-
-
- RFC 966 December 1985
- Host Groups: A Multicast Extension to the Internet Protocol
-
-
- in the basic implementation <3> so transmission to local members
- is basically as efficient as the local multicast support provided
- by the network.
-
- A similar opportunity for reducing packet traffic arises when a
- datagram must traverse a network to get from one gateway to
- another, and that network also holds members of the destination
- group. Again, use of a network-specific multicast address which
- includes member hosts plus gateways can achieve the desired
- effect. However, in this case, hosts must be prepared to accept
- datagrams that include an inter-gateway header or, alternatively,
- every datagram must include a spare field in its header for use by
- gateways in lieu of an additional inter-gateway header.
-
- 6.4. Distributing Membership Information
-
- A refinement to host group membership maintenance is to store the
- host group membership record for a group only in those gateways
- that are directly connected to member networks. Information about
- other groups is cached in the gateway only while it is required to
- route to those other groups. When a gateway receives a datagram
- to be forwarded to a group for which it has no network membership
- record (which can only happen if the gateway is not directly
- connected to a member network), it takes the following action.
- The gateway assumes temporarily that the destination group has
- members on every network in the internetwork, except those
- directly attached to the sending gateway, and routes the datagram
- accordingly. In the inter-gateway header of the outgoing packet,
- the gateway sets a bit indicating that it wishes to receive a copy
- of the network membership record for the destination host group.
- When such a datagram reaches a gateway on a member network, that
- gateway sends a copy of the membership record back to the
- requesting gateway and clears the copy request bit in the
- datagram.
-
- Copies of network membership records sent to gateways outside of a
- group's member networks are cached for use in subsequent
- transmissions by those gateways. That raises the danger of a
- stale cache entry leading to systematic delivery failures. To
- counter that problem, the inter-gateway header contains a field
- which is a hash value or checksum on the network membership record
- used to route the datagram. Gateways on member networks compare
- the checksum on incoming datagrams with their up-to-date records.
- If the checksums don't match, an up-to-date copy of the record is
- returned to the gateway with the bad record.
-
- This caching strategy minimizes intergateway traffic for groups
-
-
- Deering & Cheriton [Page 12]
-
-
-
- RFC 966 December 1985
- Host Groups: A Multicast Extension to the Internet Protocol
-
-
- that are only used within one network or within the set of
- networks on which members reside, the expected common cases.
- Partial replication with caching also reduces the overhead for
- network traffic to disseminate updates and keep all copies
- consistent. Finally, it also reduces the total space required in
- all the gateways to support a large number of host groups.
-
- We have not addressed here the problem of maintaining up-to-date,
- consistent network membership records within the set of gateways
- connected to members of a group. This can be viewed as a
- distributed database problem which has been well studied in other
- contexts. The loose consistency requirements on network
- membership records suggest that the techniques used in Grapevine
- [3] might be useful for this application.
-
- 7. Related Work
-
- The use of unreliable multicast by higher-level protocols and the
- implementation of multicast within various individual networks have
- been well-studied (see [7] for references and discussion). However,
- there is relatively little published work on the use or
- implementation of internetwork multicasting.
-
- Boggs, in his thesis [4], describes a number of distributed
- applications that are impossible or very awkward to support without
- the flexible binding nature of broadcast addressing. Although he
- recognizes that almost all of his applications would be best served
- by a multicast mechanism, he advocates the use of "directed
- broadcast" because it is easy to implement within many kinds of
- networks and can be extended across an internetwork without placing
- any new burden on internetwork gateways. In RFC-919 [13], Mogul
- proposes adopting directed broadcast for the DARPA Internet.
-
- Broadcasting has the undesirable side effect of delivering packets to
- more hosts than necessary, thus incurring overhead on uninvolved
- parties and possibly creating security problems. As more and more
- applications take advantage of broadcasting, the overhead on all
- hosts continues to rise. Clearly, broadcast does not scale up to a
- large internetwork. As an attempt to handle the scaling problem,
- directed broadcast is less attractive than true multicast because the
- set of hosts that can be reached by a single "send" operation is an
- artifact of the internetwork topology, rather than a grouping that is
- meaningful to the sender.
-
- In RFC-947 [12], Lebowitz and Mankins propose the use of broadcast
-
-
-
-
- Deering & Cheriton [Page 13]
-
-
-
- RFC 966 December 1985
- Host Groups: A Multicast Extension to the Internet Protocol
-
-
- repeaters that pick up broadcast datagrams from one network and relay
- them to other networks for broadcast there. This technique is even
- less selective of its targets than Bogg's directed broadcast method.
-
- Aguilar [1] suggests allowing an IP datagram to carry multiple
- destination addresses, which are used by the gateways to route the
- datagram to each recipient. Such a facility would alleviate some of
- the inefficiencies of sending individual datagrams to a group, but it
- would not be able to take advantage of local network multicast
- facilities. More seriously, Aguilar's scheme requires the sender to
- know the individual IP addresses of all members of the destination
- group and thus lacks the flexible binding nature of true multicast or
- broadcast.
-
- 8. Concluding Remarks
-
- We have described a model of multicast communication for the
- Internet. As an extension of the existing Internet architecture, it
- views unicast communication and time-to-live constraints as special
- cases of the more general form of communication arising with
- multicast. We have argued that this model is implementable in the
- Internet and that it provides a powerful facility for a variety of
- applications. In some cases, it provides a facility that is required
- for certain applications to work in the Internet environment. In
- other cases, it provides a more efficient, robust and possibly more
- elegant way of implementing existing Internet applications.
-
- We are currently implementing a prototype host group facility as an
- extension of IP. For practical reasons, this prototype implements
- all group management functions and multicast routing outside of the
- Internet gateways, in special hosts called multicast agents, which
- are similar to the broadcast repeaters of Lebowitz and Mankins. The
- collection of multicast agents in effect provides a second gateway
- system on top of the existing Internet, for multicast purposes. The
- major costs of this separation are redundancy of routing tables
- between gateways and multicast agents and the increased delay and
- unreliability of extra hops in the delivery path. Much of the
- routing information in the multicast agents must be "wired-in"
- because they do not have access to the gateways' routing tables.
- However, this rudimentary implementation provides an environment for
- evaluating the interface to the multicast service and for
- investigating group management and multicast routing protocols for
- eventual use in the gateways. It also serves as a testbed for
- porting multicast-based distributed applications to the Internet.
-
- For now, we are restricting group membership to local networks that
- already have a broadcast or multicast capability, such as the
-
-
- Deering & Cheriton [Page 14]
-
-
-
- RFC 966 December 1985
- Host Groups: A Multicast Extension to the Internet Protocol
-
-
- Ethernet. We feel that, in the future, any network that is to support
- hosts other than just gateways must have a multicast addressing mode.
- Efficient implementation of multicast within point-to-point or
- virtual circuit networks deserves investigation.
-
- A significant issue raised by the host group model is authentication
- and access control in the Internet. Gateways must control which
- hosts can create and join host groups, presumably making their
- decision based on the identity of the requestor (thus requiring
- authentication) and permissions (access control lists). This issue
- does not arise in conventional internetwork architectures because
- host addresses are administratively assigned with no notion of
- dynamic assignment and binding as provided by host groups. We
- believe that access control should be recognized as a proper and
- necessary function of gateways so as to protect the hosts of local
- networks from general internetwork activity. Thus, group access
- control can be subsumed as part of this more general mechanism,
- although more investigation of the general issue is called for.
-
- On a philosophical point, there has been considerable reluctance to
- make open use of multicast on local networks because it was
- network-specific and not provided across the Internet. We were
- originally of that school. However, we recognized that our "hidden"
- uses of multicast in the V distributed system were essential unless
- we resorted to dramatically poorer solutions - wired-in addresses.
- We also recognized, as described in this paper, that an adequate
- multicast facility for the Internet was feasible. As a consequence,
- we now argue that multicast is an important and basic facility to
- provide in local networks and internetworks. Higher levels of
- communication, including applications, should feel free to make use
- of this powerful facility. Networks and internetworks lacking
- multicast should be regarded as deficient relative to the future (and
- present) requirements of sophisticated distributed applications and
- communication systems.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Deering & Cheriton [Page 15]
-
-
-
- RFC 966 December 1985
- Host Groups: A Multicast Extension to the Internet Protocol
-
-
- Appendix I. Internet Group Management Protocol (IGMP)
-
- The Internet Group Management Protocol (IGMP) is used between IP
- hosts and their immediate neighbour multicast agents to support the
- allocation of temporary group addresses and the addition and deletion
- of members of a group.
-
- Like ICMP, IGMP is a required part of all IP implementations. IGMP
- messages are encapsulated in IP datagrams, with an IP protocol number
- of 2. IGMP messages are formatted similarly to ICMP messages and the
- different IGMP message types are given values distinct from ICMP
- message types, so that both protocols may share common implementation
- modules or, perhaps, be merged into a single protocol.
-
- IGMP interactions take the form of request-response transactions. A
- request message is sent by hosts to the permanent group of all
- immediate neighbour multicast agents. Multicast agents reply to the
- IP source address of a request. If no reply is received within a
- (currently unspecified) timeout interval, a host retransmits its
- request, up to some (currently unspecified) maximum number of times.
- IGMP transactions are considered idempotent, so that multicast agents
- need not recognize and filter out duplicate requests nor buffer
- replies <4>.
-
- The IGMP message formats and procedures are defined below, in the
- style used in the ICMP specification.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Deering & Cheriton [Page 16]
-
-
-
- RFC 966 December 1985
- Host Groups: A Multicast Extension to the Internet Protocol
-
-
- Create Group Request or Create Group Reply Message
-
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Type | Code | Checksum |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Identifier | Sequence Number |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Group Address |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | |
- + Access Key +
- | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- IP Fields:
-
- Addresses
-
- A Create Group Request message is sent with an individual IP
- address of the sending host as its source, and the well-known
- group address of the multicast agents as its destination.
-
- The corresponding Create Group Reply is sent with those two
- addresses reversed.
-
- IGMP Fields:
-
- Type
-
- 101 for Create Group Request
- 102 for Create Group Reply
-
- Code
-
- For a Create Group Request message, the Code field indicates if
- the group is to be restricted:
-
- 0 = unrestricted
- 1 = restricted
-
- For a Create Group Reply message, the Code field specifies the
- outcome of the request:
-
- 0 = request approved
- 1 = request denied, no resources
-
-
- Deering & Cheriton [Page 17]
-
-
-
- RFC 966 December 1985
- Host Groups: A Multicast Extension to the Internet Protocol
-
-
- Checksum
-
- The checksum is the 16-bit one's complement of the one's
- complement sum of the IGMP message starting with the IGMP Type.
- For computing the checksum, the checksum field should be zero.
- This checksum may be replaced in the future.
-
- Identifier
-
- An identifier to aid in matching Request and Reply messages.
-
- Sequence Number
-
- A sequence number to aid in matching Request and Reply
- messages.
-
- Group Address
-
- For a Create Group Request message, a value of 0.
-
- For a Create Group Reply message, either a newly allocated
- group address (if the request is approved) or a value of 0 (if
- denied).
-
- Access Key
-
- For a Create Group Request message, a value of 0.
-
- For a Create Group Reply message, either a pseudo-random 64-bit
- number (if the request for a restricted group is approved) or
- 0.
-
- Description
-
- A Create Group Request message is sent to the the group of
- local multicast agents by a host wishing to allocate a new
- temporary group.
-
- If no Reply message is received within t seconds, the Request
- is retransmitted. If no Reply is received after n
- transmissions, the request is deemed to have failed.
-
- The first Reply message to arrive, if any, specifies the
- outcome of the request. The request may be denied because of
- lack of resources (e.g. no table space in gateways or all
- temporary addresses in use).
-
-
-
- Deering & Cheriton [Page 18]
-
-
-
- RFC 966 December 1985
- Host Groups: A Multicast Extension to the Internet Protocol
-
-
- If the request is approved, the requesting host is considered
- to be the first and only current member of the new host group.
-
- The Identifier and Sequence Number fields are used to match the
- Reply to the corresponding Request. The multicast agents may
- choose to use these values to minimize the chance of allocating
- more than one new group for a single request, for example when
- a Reply is lost and a
-
- Request is retransmitted. However, the multicast agents must
- be prepared to recover temporary group addresses without
- requiring explicit Leave Group Requests from all members; they
- may choose simply to allocate a new address for every
- retransmission and recover unused ones when needed <5>.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Deering & Cheriton [Page 19]
-
-
-
- RFC 966 December 1985
- Host Groups: A Multicast Extension to the Internet Protocol
-
-
- Join Group Request or Join Group Reply Message
-
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Type | Code | Checksum |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Identifier | Sequence Number |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Group Address |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | |
- + Access Key +
- | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- IP Fields:
-
- Addresses
-
- A Join Group Request message is sent with an individual IP
- address of the sending host as its source, and the well-known
- group address of the multicast agents as its destination.
-
- The corresponding Join Group Reply is sent with those two
- addresses reversed.
-
- IGMP Fields:
-
- Type
-
- 103 for Join Group Request
- 104 for Join Group Reply
-
- Code
-
- For a Join Group Request message, the Code field contains 0.
-
- For a Join Group Reply message, the Code field specifies the
- outcome of the request:
-
- 0 = request approved
- 1 = request denied, no resources
- 2 = request denied, invalid group address
- 3 = request denied, invalid access key
-
-
-
-
- Deering & Cheriton [Page 20]
-
-
-
- RFC 966 December 1985
- Host Groups: A Multicast Extension to the Internet Protocol
-
-
- Checksum
-
- The checksum is the 16-bit one's complement of the one's
- complement sum of the IGMP message starting with the IGMP Type.
- For computing the checksum, the checksum field should be zero.
- This checksum may be replaced in the future.
-
- Identifier
-
- An identifier to aid in matching Request and Reply messages.
-
- Sequence Number
-
- A sequence number to aid in matching Request and Reply
- messages.
-
- Group Address
-
- For a Join Group Request message, a host group address.
-
- For a Join Group Reply message, the same group address as in
- the corresponding request.
-
- Access Key
-
- For a Join Group Request message, the access key allocated when
- the group was created (0 for unrestricted groups).
-
- For a Join Group Reply message, the same access key as in the
- corresponding request.
-
- Description
-
- A Join Group Request message is sent to the the group of local
- multicast agents by a host wishing to join a specified,
- existing group. If no Reply message is received within t
- seconds, the Request is retransmitted. If no reply is received
- after n transmissions, the request is deemed to have failed.
-
- The first Reply message to arrive, if any, specifies the
- outcome of the request. The request may be denied because of
- an invalid access key, an invalid specified group address (e.g.
- non-existent group) or lack of resources (e.g. no table space
- in gateways).
-
- The Identifier and Sequence Number fields are used to match the
- Reply to the corresponding Request. If a multicast agent
-
-
- Deering & Cheriton [Page 21]
-
-
-
- RFC 966 December 1985
- Host Groups: A Multicast Extension to the Internet Protocol
-
-
- receives a request from a host to join a group to which it
- already belongs, the agent approves the request, under the
- assumption that the request was a retransmission for a lost
- Reply.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Deering & Cheriton [Page 22]
-
-
-
- RFC 966 December 1985
- Host Groups: A Multicast Extension to the Internet Protocol
-
-
- Leave Group Request or Leave Group Reply Message
-
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Type | Code | Checksum |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Identifier | Sequence Number |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Group Address |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- IP Fields:
-
- Addresses
-
- A Leave Group Request message is sent with an individual IP
- address of the sending host as its source, and the well-known
- group address of the multicast agents as its destination.
-
- The corresponding Leave Group Reply is sent with those two
- addresses reversed.
-
- IGMP Fields:
-
- Type
-
- 105 for Leave Group Request
- 106 for Leave Group Reply
-
- Code
-
- For a Leave Group Request message, the Code field contains 0.
-
- For Leave Group Reply message, the Code field specifies the
- outcome of the request:
-
- 0 = request approved
- 2 = request denied, invalid group address
-
- Checksum
-
- The checksum is the 16-bit one's complement of the one's
- complement sum of the IGMP message starting with the IGMP Type.
- For computing the checksum, the checksum field should be zero.
- This checksum may be replaced in the future.
-
-
-
- Deering & Cheriton [Page 23]
-
-
-
- RFC 966 December 1985
- Host Groups: A Multicast Extension to the Internet Protocol
-
-
- Identifier
-
- An identifier to aid in matching Request and Reply messages.
-
- Sequence Number
-
- A sequence number to aid in matching Request and Reply
- messages.
-
- Group Address
-
- For a Leave Group Request message, a host group address.
-
- For a Leave Group Reply message, the same group address as in
- the corresponding request.
-
- Description
-
- A Leave Group Request message is sent to the the group of local
- multicast agents by a host wishing to leave a specified,
- existing group. If no Reply message is received within t
- seconds, the Request is retransmitted. If no reply is received
- after n transmissions, the request is deemed to have succeeded.
-
- The first Reply message to arrive, if any, specifies the
- outcome of the request. The request may be denied only if the
- specified group address is invalid (e.g. an individual rather
- than a group address.)
-
- The Identifier and Sequence Number fields are used to match the
- Reply to the corresponding Request, as with other ICMP
- transactions. If a multicast agent receives a request from a
- host to leave a group to which it does not belong, the agent
- approves the request, under the assumption that the request was
- a retransmission for a lost Reply.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Deering & Cheriton [Page 24]
-
-
-
- RFC 966 December 1985
- Host Groups: A Multicast Extension to the Internet Protocol
-
-
- Notes:
-
- <1> In reality, Internet addresses (individual or group) are bound
- to network interfaces or network attachment points, not the host
- machines per se.
-
- <2> In this procedure call notation, the arguments for an operation
- are listed in parentheses after the operation name, and the
- returned values, if any, are listed after a --> symbol.
-
- <3> One unicast transmission from sender to gateway and one
- multicast transmission from gateway to local group members
-
- <4> This protocol may eventually be replaced by a more general
- reliable transaction protocol designed for this type of
- client/server interaction, as suggested in RFC-955 [5].
-
- <5> Multicast agents can use an ICMP Echo message to determine if a
- group has any current members. The Echo message should be
- transmitted several times before deciding the group address is
- no longer in use.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Deering & Cheriton [Page 25]
-
-
-
- RFC 966 December 1985
- Host Groups: A Multicast Extension to the Internet Protocol
-
-
- References
-
- [1] L. Aguilar. Datagram Routing for Internet Multicasting. In ACM
- SIGCOMM '84 Communications Architectures and Protocols, pages
- 58-63. ACM, June, 1984.
-
- [2] E. J. Berglund and D. R. Cheriton. Amaze: A distributed
- multi-player game program using the distributed V kernel. In
- Proceedings of the Fourth International Conference on
- Distributed Systems. IEEE, May, 1984.
-
- [3] A. D. Birrell et al. Grapevine: an exercise in distributed
- computing. Communications of the ACM 25(4):260-274, April,
- 1982.
-
- [4] D. R. Boggs. Internet Broadcasting. PhD thesis, Stanford
- University, January, 1982.
-
- [5] R. Braden. Towards a Transport Service for Transaction
- Processing Applications. Technical Report RFC-919, SRI Network
- Information Center, September, 1985.
-
- [6] J-M. Chang. Simplifying Distributed Database Design by Using a
- Broadcast Network. In SIGMOD '84. ACM, June, 1984.
-
- [7] D. R. Cheriton and S. E. Deering. Host Groups: A Multicast
- Extension for Datagram Internetworks. In Proceedings of the
- Ninth Data Communications Symposium. ACM/IEEE, September, 1985.
-
- [8] D. R. Cheriton and W. Zwaenepoel. Distributed Process Groups in
- the V Kernel. ACM Transactions on Computer Systems 3(3), May,
- 1985.
-
- [9] F. Cristian et al. Atomic Broadcast: from simple message
- diffusion to Byzantine agreement. In 15th International
- Conference on Fault Tolerant Computing. , Ann Arbor, Michigan,
- June, 1985.
-
- [10] Y. K. Dalal and R. M. Metcalfe. Reverse Path Forwarding of
- Broadcast Packets. Communications of the ACM 21(2):1040-1047,
- December, 1978.
-
- [11] H. Forsdick. MMCF: A Multi-Media Conferencing Facility.
- personal communication.
-
-
-
-
-
- Deering & Cheriton [Page 26]
-
-
-
- RFC 966 December 1985
- Host Groups: A Multicast Extension to the Internet Protocol
-
-
- [12] K. Lebowitz and D. Mankins. Multi-network Broadcasting within
- the Internet.Technical Report RFC-947, SRI Network Information
- Center, June, 1985.
-
- [13] J. Mogul. Broadcasting Internet Datagrams. Technical Report
- RFC-919, SRI Network Information Center, October, 1984.
-
- [14] J. Postel. Internet Protocol. Technical Report RFC-791, SRI
- Network Information Center, September, 1981.
-
- [15] J. Postel. Internet Control Message Protocol. Technical Report
- RFC-792, SRI Network Information Center, September, 1981.
-
- [16] D. W, Wall. Mechanisms for Broadcast and Selective Broadcast.
- Technical Report 190, Computer Systems Laboratory, Stanford
- University, June, 1980.
-
- [17] J. K. Reynolds and J. Postel. Assigned Numbers. Technical
- Report RFC-960, SRI Network Information Center, September,
- 1981.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Deering & Cheriton [Page 27]
-
-